package com.probox.common.entity.domain.order;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serializable;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.*;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.probox.common.core.annotation.Excel;

/**
 * 用户退款信息对象 order_pay_back
 *
 * @author hds
 * @date 2021-06-07
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("order_pay_back")
@ApiModel(description = "用户退款信息")
public class OrderPayBack implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    //默认主键自增
    @TableId(value = "BACK_UID", type = IdType.AUTO)
    private Long backUid;
    /** 商家ID */
    @Excel(name = "商家ID")
    @ApiModelProperty(value = "商家ID(商家ID)")
    private Long supplierUid;

    /** 供应商名称 */
    @Excel(name = "供应商名称")
    @ApiModelProperty(value = "供应商名称(供应商名称)")
    private String supplierName;

    /** 客户UID */
    @Excel(name = "客户UID")
    @ApiModelProperty(value = "客户UID(客户UID)")
    private Long customerUid;

    /** 客户名称 */
    @Excel(name = "客户名称")
    @ApiModelProperty(value = "客户名称(客户名称)")
    private String customerName;

    /** 订单ID */
    @Excel(name = "订单ID")
    @ApiModelProperty(value = "订单ID(订单ID)")
    private Long orderUid;

    /** 订单号 */
    @Excel(name = "订单号")
    @ApiModelProperty(value = "订单号(订单号)")
    private String orderNo;

    /** 订单明细ID(商户退款单号) */
    @Excel(name = "订单明细ID(商户退款单号)")
    @ApiModelProperty(value = "订单明细ID(商户退款单号) ")
    private Long itemUid;

    /** 订单支付金额 */
    @Excel(name = "订单支付金额")
    @ApiModelProperty(value = "订单支付金额(订单支付金额)")
    private Long payAmount;

    /** 退款金额 */
    @Excel(name = "退款金额")
    @ApiModelProperty(value = "退款金额(退款金额)")
    private Long backAmount;

    /** 申请原因 */
    @Excel(name = "申请原因")
    @ApiModelProperty(value = "申请原因(申请原因)")
    private String applyReason;

    /** 用户申请时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "用户申请时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "用户申请时间(用户申请时间)")
    private Date applyTime;

    /** 状态(0无效/1有效) */
    @Excel(name = "状态(0无效/1有效)")
    @ApiModelProperty(value = "状态(0无效/1有效) ")
    private String status;

    /** 退款原因(商家) */
    @Excel(name = "退款原因(商家)")
    @ApiModelProperty(value = "退款原因(商家)(退款原因(商家))")
    private String backReason;

    /** 商家退款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "商家退款时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "商家退款时间(商家退款时间)")
    private Date confirmTime;

    /** 商家审核意见 */
    @Excel(name = "商家审核意见")
    @ApiModelProperty(value = "商家审核意见(商家审核意见)")
    private String auditRemark;

    /** 退款状态(0商家拒绝退款/1等待商家审核/2商家发起退款/3商家退款成功/4商家退款失败 */
    @Excel(name = "退款状态(0商家拒绝退款/1等待商家审核/2商家发起退款/3商家退款成功/4商家退款失败")
    @ApiModelProperty(value = "退款状态(0商家拒绝退款/1等待商家审核/2商家发起退款/3商家退款成功/4商家退款失败 ")
    private String backStatus;

    /** 微信退款单号 */
    @Excel(name = "微信退款单号")
    @ApiModelProperty(value = "微信退款单号")
    private String refundId;

    /** 退款渠道(wechat微信/alipay支付宝) */
    @Excel(name = "退款渠道(wechat微信/alipay支付宝)")
    @ApiModelProperty(value = "退款渠道(wechat微信/alipay支付宝)")
    private String backType;

}
